Enterprises need a high performance mechanism to connect services together in an end-to-end fashion that preserves transactional integrity and history from the beginning of the string of services to the end of the string. One prior art approach uses an enterprise service bus (ESB), which is a software architecture construct that provides fundamental services for complex architectures via an event-driven and standards-based messaging engine (the bus). However, the ESB does not track the history of service-to-service interactions back to the originating service request. A bus architecture is designed for endpoint-to-endpoint communications, not a long string of interconnected points. When dealing with a series of three or more interconnected points, a pipeline architecture becomes much more suitable. However, the ESB does not provide an end-to-end history of the transaction or an end-to-end identity trace. For example, if the provider is also a consumer that needs something from another provider, that subsequent request is disconnected from the originating request.
FIG. 1 shows a prior art system 100 including ESB 102 that allows a service consumer (SC) 110 to be connected to a service provider and consumer (SPC) 1 112. It also allows SPC1 112 to be connected to another service provider and consumer SPC2 114. It would also allow SPC2 114 to be connected to some service provider SP 116. They all execute independently with ESB 102 coordinating the communications between the service consumers and providers.
The prior art approach of FIG. 1 shows that all of the service providers and consumers are connected. As configured, one would assume that because of the connectivity, a request could be traced from the beginning at Wconsumer 110 to the end at Yprovider 116. In reality, however, ESB 102 does not provide this feature. From these relationships, Wconsumer 110 is connected to WproviderXconsumer SPC1 112 that is connected to XproviderYconsumer 114. It may not be known that WproviderXconsumer SPC1 112 is connected to XproviderYconsumer 114 in order to satisfy the original request of Wconsumer 110. From a representative or graphical perspective, it is not known that for SPC1 112, the outgoing request for X Flows 106 is the direct result of the incoming request for Wconsumer 110.
With an ESB, consumers and providers operate as disconnected transactions. The fact that WproviderXconsumer SPC1 112 is a consumer of XproviderYconsumer SPC2 114 is totally disconnected from XproviderYconsumer SPC2's 114 provision of X Flow 106 and SC's 110 consumption of w: FlowW 104.
Therefore, there exists a need for a solution that solves at least one of the deficiencies of the prior art approach shown in FIG. 1.